package info.opensoaring.api.igc;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;

public class FlightProperties implements Serializable {

    private static final long serialVersionUID = 3073373239791123431L;

    private String recorderManufacturer;

    private String recorderId;

    private String recorderIdExtension;

    private Date flightDate;

    private String fixAccuracy;

    private String pilotInCharge;

    private String crewMember2;

    private String gliderType;

    private String gliderId;
    
    private String gpsDatum;

    private String firmwareVersion;
    
    private String hardwareVersion;
    
    private String recorderDetails;
    
    private String gpsEngine;
    
    private String pressureAltitudeSensor;
    
    private String competitionId;
    
    private String competitionClass;
    
    private ArrayList<FixExtension> fixExtensions = new ArrayList<FixExtension>();

    private FlightDeclaration flightDeclaration;

    public FlightProperties() {

    }

    public ArrayList<FixExtension> getFixExtensions() {
	return fixExtensions;
    }

    public void setFixExtensions(ArrayList<FixExtension> fixExtensions) {
	this.fixExtensions = fixExtensions;
    }

    public void addFixExtension(FixExtension fixExtension) {
	this.fixExtensions.add(fixExtension);
    }

    public String getFixAccuracy() {
	return fixAccuracy;
    }

    public void setFixAccuracy(String fixAccuracy) {
	this.fixAccuracy = fixAccuracy;
    }

    public String getPilotInCharge() {
	return pilotInCharge;
    }

    public void setPilotInCharge(String pilotInCharge) {
	this.pilotInCharge = pilotInCharge;
    }

    public String getCrewMember2() {
	return crewMember2;
    }

    public void setCrewMember2(String crewMember2) {
	this.crewMember2 = crewMember2;
    }

    public String getGliderType() {
	return gliderType;
    }

    public void setGliderType(String gliderType) {
	this.gliderType = gliderType;
    }

    public String getGliderId() {
	return gliderId;
    }

    public void setGliderId(String gliderId) {
	this.gliderId = gliderId;
    }

    public String getRecorderManufacturer() {
	return recorderManufacturer;
    }

    public void setRecorderManufacturer(String recorderManufacturer) {
	this.recorderManufacturer = recorderManufacturer;
    }

    public String getRecorderId() {
	return recorderId;
    }

    public void setRecorderId(String recorderId) {
	this.recorderId = recorderId;
    }

    public String getRecorderIdExtension() {
	return recorderIdExtension;
    }

    public void setRecorderIdExtension(String recorderIdExtension) {
	this.recorderIdExtension = recorderIdExtension;
    }

    public Date getFlightDate() {
	return flightDate;
    }

    public void setFlightDate(Date flightDate) {
	this.flightDate = flightDate;
    }

    public FlightDeclaration getFlightDeclaration() {
	return flightDeclaration;
    }

    public void setFlightDeclaration(FlightDeclaration flightDeclaration) {
	this.flightDeclaration = flightDeclaration;
    }

    public String getGpsDatum() {
        return gpsDatum;
    }

    public void setGpsDatum(String gpsDatum) {
        this.gpsDatum = gpsDatum;
    }

    public String getFirmwareVersion() {
        return firmwareVersion;
    }

    public void setFirmwareVersion(String firmwareVersion) {
        this.firmwareVersion = firmwareVersion;
    }

    public String getHardwareVersion() {
        return hardwareVersion;
    }

    public void setHardwareVersion(String hardwareVersion) {
        this.hardwareVersion = hardwareVersion;
    }

    public String getRecorderDetails() {
        return recorderDetails;
    }

    public void setRecorderDetails(String recorderDetails) {
        this.recorderDetails = recorderDetails;
    }

    public String getGpsEngine() {
        return gpsEngine;
    }

    public void setGpsEngine(String gpsEngine) {
        this.gpsEngine = gpsEngine;
    }

    public String getPressureAltitudeSensor() {
        return pressureAltitudeSensor;
    }

    public void setPressureAltitudeSensor(String pressureAltitudeSensor) {
        this.pressureAltitudeSensor = pressureAltitudeSensor;
    }

    public String getCompetitionId() {
        return competitionId;
    }

    public void setCompetitionId(String competitionId) {
        this.competitionId = competitionId;
    }

    public String getCompetitionClass() {
        return competitionClass;
    }

    public void setCompetitionClass(String competitionClass) {
        this.competitionClass = competitionClass;
    }

    public String toString() {
	return "{RecorderManufacturer=" + getRecorderManufacturer() + ",RecordId="
		+ getRecorderId() + ",RecorderIdExtension=" + getRecorderIdExtension()
		+ ",FlightDate=" + getFlightDate() + ",FixAccuracy=" + getFixAccuracy()
		+ ",PilotInCharge=" + getPilotInCharge() + ",CrewMember2=" + getCrewMember2()
		+ ",GliderType=" + getGliderType() + ",GliderId=" + getGliderId()
		+ ",GpsDatum=" + getGpsDatum() + ",FirmwareVersion=" + getFirmwareVersion()
		+ ",HardwareVersion=" + getHardwareVersion() + ",RecorderDetails=" + getRecorderDetails()
		+ ",GpsEngine=" + getGpsEngine() + ",PressureAltitudeSensor=" + getPressureAltitudeSensor()
		+ ",CompetitionId=" + getCompetitionId() + ",CompetitionClass=" + getCompetitionClass()
		+ ",FixExtensions=" + getFixExtensions() + "}";
    }
}
